	private final static int EARTH = 557, WATER = 555, AIR = 556, FIRE = 554;
	private final static int MIND = 558, BODY = 559, COSMIC = 564, CHAOS = 562;
	private final static int NATURE = 561,  LAW = 563;
	private final static int DEATH = 560, BLOOD = 565, SOUL = 566;
	
	private final static int SPELL_WIND_RUSH = 98; //why isnt this already added?

	private enum ModernSpells {

		//ALL MODERN SPELLS :D !!!! NotFinished -- need actual Spell times and it will be complete :D
		LUMBRIDGE_HOME_TELEPORT(Magic.SPELL_HOME_TELEPORT, null, null, 10000),
		WIND_RUSH(SPELL_WIND_RUSH, createRuneIdArray(AIR),createRuneNumberArray(2), 200), 
		WIND_STRIKE(Magic.SPELL_WIND_STRIKE, createRuneIdArray(MIND, AIR),createRuneNumberArray(1, 1), 200), 
		CONFUSE(Magic.SPELL_CONFUSE,createRuneIdArray(BODY, EARTH, WATER), createRuneNumberArray(1,2, 3), 200), 
		ENCHANT_CROSSBOW_BOLT_OPAL(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(COSMIC,AIR), createRuneNumberArray(1, 2), 200),
		WATER_STRIKE(Magic.SPELL_WATER_STRIKE, createRuneIdArray(MIND,WATER,AIR), createRuneNumberArray(1,1,1), 200),
		ENCHANT_LEVEL_1_Jewellery(Magic.SPELL_LVL1_ENCHANT, createRuneIdArray(COSMIC,WATER), createRuneNumberArray(1,1), 200),
		ENCHANT_CROSSBOW_BOLT_SAPPHIRE(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(COSMIC,WATER), createRuneNumberArray(1,1), 200),
		EARTH_STRIKE(Magic.SPELL_EARTH_STRIKE, createRuneIdArray(MIND,EARTH,AIR), createRuneNumberArray(1,2,1), 200),
		WEAKEN(Magic.SPELL_WEAKEN, createRuneIdArray(BODY,EARTH,WATER), createRuneNumberArray(1,2,3), 200),
		FIRE_STRIKE(Magic.SPELL_FIRE_STRIKE, createRuneIdArray(MIND,FIRE,AIR), createRuneNumberArray(1,3,2), 200),
		ENCHANT_CROSSBOW_BOLT_JADE(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(COSMIC,EARTH), createRuneNumberArray(1, 2), 200),
		BONES_TO_BANANAS(Magic.SPELL_BONES_TO_BANANAS, createRuneIdArray(NATURE,EARTH,WATER), createRuneNumberArray(1,2,2),200),
		WIND_BOLT(Magic.SPELL_WIND_BOLT, createRuneIdArray(CHAOS,AIR), createRuneNumberArray(1,2), 200),
		CURSE(Magic.SPELL_CURSE, createRuneIdArray(BODY,EARTH,WATER), createRuneNumberArray(1,3,2), 200),
		BIND(Magic.SPELL_BIND, createRuneIdArray(NATURE,EARTH,WATER), createRuneNumberArray(2,3,3), 200),
		LOW_ALCHEMY(Magic.SPELL_LOW_LEVEL_ALCHEMY, createRuneIdArray(NATURE,FIRE), createRuneNumberArray(1,3), 200),
		WATER_BOLT(Magic.SPELL_WATER_BOLT, createRuneIdArray(CHAOS,WATER,AIR), createRuneNumberArray(1,2,2), 200),
		ENCHANT_CROSSBOW_BOLT_PEARL(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(COSMIC, WATER), createRuneNumberArray(1,2), 200),
		VARROCK_TELEPORT(Magic.SPELL_VARROCK_TELEPORT, createRuneIdArray(LAW,FIRE,AIR), createRuneNumberArray(1,1,3), 200),
		ENCHANT_LEVEL_2_JEWELLERY(Magic.SPELL_LVL2_ENCHANT, createRuneIdArray(COSMIC,AIR), createRuneNumberArray(1,3), 200),
		ENCHANT_CROSSBOW_BOLT_EMERALD(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(NATURE,COSMIC,AIR), createRuneNumberArray(1,1,3), 200),
		EARTH_BOLT(Magic.SPELL_EARTH_BOLT, createRuneIdArray(CHAOS,EARTH,AIR), createRuneNumberArray(1,3,2), 200),
		ENCHANT_CROSSBOW_BOLT_RED_TOPAZ(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(COSMIC,FIRE), createRuneNumberArray(1,2), 200),
		LUMBRIDGE_TELEPORT(Magic.SPELL_LUMBRIDGE_TELEPORT, createRuneIdArray(LAW,EARTH,AIR), createRuneNumberArray(1,1,3), 200),
		TELEKINETIC_GRAB(Magic.SPELL_TELEKINETIC_GRAB, createRuneIdArray(LAW,AIR), createRuneNumberArray(1,1), 200),
		FIRE_BOLT(Magic.SPELL_FIRE_BOLT, createRuneIdArray(CHAOS,FIRE,AIR), createRuneNumberArray(1,4,3), 200),
		FALADOR_TELEPORT(Magic.SPELL_FALADOR_TELEPORT, createRuneIdArray(LAW,WATER,AIR), createRuneNumberArray(1,1,3), 200),
		CRUMBLE_UNDEAD(Magic.SPELL_CRUMBLE_UNDEAD, createRuneIdArray(CHAOS,EARTH,AIR), createRuneNumberArray(1,2,2), 200),
		HOUSE_TELEPORT(Magic.SPELL_TELEPORT_TO_HOUSE, createRuneIdArray(LAW,EARTH,AIR), createRuneNumberArray(1,1,1), 200),
		WIND_BLAST(Magic.SPELL_WIND_BLAST, createRuneIdArray(DEATH,AIR), createRuneNumberArray(1,3), 200),
		SUPERHEAT_ITEM(Magic.SPELL_SUPERHEAT_ITEM, createRuneIdArray(NATURE,FIRE), createRuneNumberArray(1,4), 200),
		CAMELOT_TELEPORT(Magic.SPELL_CAMELOT_TELEPORT, createRuneIdArray(LAW,AIR), createRuneNumberArray(1,5), 200),
		WATER_BLAST (Magic.SPELL_WATER_BLAST, createRuneIdArray(DEATH,WATER,AIR), createRuneNumberArray(1,3,3), 200),
		ENCHANT_LEVEL_3_JEWELLERY(Magic.SPELL_LVL3_ENCHANT, createRuneIdArray(COSMIC,FIRE), createRuneNumberArray(1,5), 200),
		ENCHANT_CROSSBOW_BOLT_RUBY(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(BLOOD,COSMIC,FIRE), createRuneNumberArray(1,1,5), 200),
		IBAN_BLAST(Magic.SPELL_IBAN_BLAST, createRuneIdArray(DEATH,FIRE), createRuneNumberArray(1,5), 200),
		MAGIC_DART(Magic.SPELL_MAGIC_DART, createRuneIdArray(DEATH,MIND), createRuneNumberArray(1,4), 200),
		SNARE(Magic.SPELL_SNARE, createRuneIdArray(NATURE,EARTH,WATER), createRuneNumberArray(3,4,4),200),
		ARDOUGNE_TELEPORT(Magic.SPELL_ARDOUGNE_TELEPORT, createRuneIdArray(LAW,WATER), createRuneNumberArray(2,2), 200),
		EARTH_BLAST(Magic.SPELL_EARTH_BLAST, createRuneIdArray(DEATH,EARTH,AIR), createRuneNumberArray(1,4,3), 200),
		HIGH_ALCHEMY(Magic.SPELL_HIGH_LEVEL_ALCHEMY, createRuneIdArray(NATURE,FIRE), createRuneNumberArray(1,5), 200),
		CHARGE_WATER_ORB(Magic.SPELL_CHARGE_WATER_ORB, createRuneIdArray(COSMIC,WATER), createRuneNumberArray(3,30), 200),
		ENCHANT_LEVEL_4_JEWELLERY(Magic.SPELL_LVL4_ENCHANT, createRuneIdArray(COSMIC,EARTH), createRuneNumberArray(1,10), 200),
		Enchant_Crossbow_Bolt_Diamond(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(LAW,COSMIC,EARTH), createRuneNumberArray(2,1,10), 200),
		WATCHTOWER_TELEPORT(Magic.SPELL_WATCHTOWER_TELEPORT, createRuneIdArray(LAW,EARTH),createRuneNumberArray(2,2), 200),
		FIRE_BLAST(Magic.SPELL_FIRE_BLAST, createRuneIdArray(DEATH,FIRE,AIR), createRuneNumberArray(1,5,4), 200),
		BONES_TO_PEACHES(Magic.SPELL_BONES_TO_PEACHES, createRuneIdArray(NATURE,EARTH,WATER), createRuneNumberArray(2,2,4), 200),
		CHARGE_EARTH_ORB(Magic.SPELL_CHARGE_EARTH_ORB, createRuneIdArray(COSMIC,EARTH), createRuneNumberArray(3,30), 200),
		SARADOMIN_STRIKE(Magic.SPELL_SARADOMIN_STRIKE, createRuneIdArray(BLOOD,FIRE,AIR), createRuneNumberArray(2,2,4), 200),
		CLAWS_OF_GUTHIX(Magic.SPELL_CLAWS_OF_GUTHIX, createRuneIdArray(BLOOD,FIRE,AIR), createRuneNumberArray(2,1,4), 200),
		FLAMES_OF_ZAMORAK(Magic.SPELL_FLAMES_OF_ZAMORAK, createRuneIdArray(BLOOD,FIRE,AIR), createRuneNumberArray(2,4,1), 200),
		TROLLHEIM_TELEPORT(Magic.SPELL_TROLLHEIM_TELEPORT, createRuneIdArray(LAW,FIRE), createRuneNumberArray(2,2), 200),
		WIND_WAVE(Magic.SPELL_WIND_WAVE, createRuneIdArray(BLOOD,AIR), createRuneNumberArray(1,5), 200),
		CHARGE_FIRE_ORB(Magic.SPELL_CHARGE_FIRE_ORB, createRuneIdArray(COSMIC,FIRE), createRuneNumberArray(3,30), 200),
		TELEPORT_APE_ATOLL(Magic.SPELL_APE_ATOL_TELEPORT, createRuneIdArray(LAW,FIRE,WATER), createRuneNumberArray(2,2,2), 200),
		WATER_WAVE(Magic.SPELL_WATER_WAVE, createRuneIdArray(BLOOD,WATER,AIR), createRuneNumberArray(1,7,5), 200),
		CHARGE_AIR_ORB(Magic.SPELL_CHARGE_AIR_ORB, createRuneIdArray(COSMIC,AIR), createRuneNumberArray(3,30), 200),
		VULNERABILITY(Magic.SPELL_VULNERABILITY, createRuneIdArray(SOUL,EARTH,WATER), createRuneNumberArray(1,5,5), 200),
		ENCHANT_LEVEL_5_JEWELLERY(Magic.SPELL_LVL5_ENCHANT, createRuneIdArray(COSMIC,EARTH,WATER), createRuneNumberArray(1,15,15), 200),
		ENCHANT_CROSSBOW_BOLT_DRAGONSTONE(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(SOUL,COSMIC,EARTH), createRuneNumberArray(1,1,12), 200),
		EARTH_WAVE(Magic.SPELL_EARTH_WAVE, createRuneIdArray(SOUL,EARTH,AIR), createRuneNumberArray(1,7,5), 200),
		ENFEEBLE(Magic.SPELL_ENFEEBLE, createRuneIdArray(SOUL,EARTH,WATER), createRuneNumberArray(1,8,8), 200),
		TELEOTHER_LUMBRIDGE(Magic.SPELL_TELEOTHER_LUMBRIDGE, createRuneIdArray(SOUL,LAW,EARTH), createRuneNumberArray(1,1,1), 200),
		FIRE_WAVE(Magic.SPELL_FIRE_WAVE, createRuneIdArray(BLOOD,FIRE,AIR), createRuneNumberArray(1,7,5), 200),
		ENTANGLE(Magic.SPELL_ENTANGLE, createRuneIdArray(NATURE,EARTH,WATER), createRuneNumberArray(4,5,5), 200),
		CHARGE(Magic.SPELL_CHARGE, createRuneIdArray(BLOOD,FIRE,AIR), createRuneNumberArray(3,3,3), 200),
		STUN(Magic.SPELL_STUN, createRuneIdArray(SOUL,EARTH,WATER), createRuneNumberArray(1,12,12), 200),
		WIND_SURGE(Magic.SPELL_WIND_SURGE, createRuneIdArray(BLOOD,DEATH,AIR), createRuneNumberArray(1,1,7), 200),
		TELEOTHER_FALADOR(Magic.SPELL_TELEOTHER_FALADOR, createRuneIdArray(SOUL,LAW,WATER), createRuneNumberArray(1,1,1), 200),
		TELEPORT_BLOCK(Magic.SPELL_TELEPORT_BLOCK, createRuneIdArray(LAW,DEATH,CHAOS), createRuneNumberArray(1,1,1), 200),
		WATER_SURGE(Magic.SPELL_WATER_SURGE, createRuneIdArray(BLOOD,DEATH,WATER,AIR), createRuneNumberArray(1,1,10,7), 200),
		ENCHANT_LEVEL_6_JEWELLERY(Magic.SPELL_LVL6_ENCHANT, createRuneIdArray(COSMIC,FIRE,EARTH), createRuneNumberArray(1,20,20), 200),
		ENCHANT_CROSSBOW_BOLT_ONYX(Magic.SPELL_ENCHANT_CROSSBOW_BOLT, createRuneIdArray(DEATH,COSMIC,FIRE), createRuneNumberArray(1,1,20), 200),
		TELEOTHER_CAMELOT(Magic.SPELL_TELEOTHER_CAMELOT, createRuneIdArray(SOUL,LAW), createRuneNumberArray(2,1), 200),
		EARTH_SURGE(Magic.SPELL_EARTH_SURGE, createRuneIdArray(BLOOD,DEATH,EARTH,AIR), createRuneNumberArray(1,1,10,7), 200),
		FIRE_SURGE(Magic.SPELL_FIRE_SURGE, createRuneIdArray(BLOOD,DEATH,FIRE,AIR), createRuneNumberArray(1,1,10,7), 200);
					
		private int spellId;
		private int castTime;
		private int[] reqRuneIds;
		private int[] reqRuneNums;

		ModernSpells(final int spellId, final int[] reqRuneIds,
				final int[] reqRuneNums, final int castTime) {
			this.spellId = spellId;
			this.castTime = castTime;
			this.reqRuneIds = reqRuneIds;
			this.reqRuneNums = reqRuneNums;
		}

		public int getSpellId() {
			return this.spellId;
		}

		public int getCastTime() {
			return this.castTime;
		}

		public int[] getReqRuneIDs() {
			return this.reqRuneIds;
		}

		public int[] getReqRuneNumbers() {
			return this.reqRuneNums;
		}

		private static int[] createRuneIdArray(int... myInts) {
			int[] runeIDs = myInts;
			return runeIDs;
		}

		private static int[] createRuneNumberArray(int... myInts) {
			int[] runeNums = myInts;
			return runeNums;
		}
	}